package com.example.agricultural_machinery_navigation.adpter;

import android.annotation.SuppressLint;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.example.agricultural_machinery_navigation.R;
import com.example.agricultural_machinery_navigation.bean.Function;

import java.util.List;

/*******
 * 类名： MyRecycleViewAapter
 * 功能：recycleview的适配器类，这里用来适配内层子recycleview
 * *******/
public class MyRecycleViewAapter extends RecyclerView.Adapter<MyRecycleViewAapter.MyViewHolder> {
     private Context mContext;
     private List<Function> mData;
     private LayoutInflater inflater;
     private int  mPosition;

     /*********
      * 方法名：MyRecycleViewAapter
      * 功能：构造方法
      * @param  context 上下文对象
      * @param  data recycleview 需要填充的数据
      * *********/
    public MyRecycleViewAapter(Context context , List<Function> data) {
        mContext = context;
        mData = data;
        inflater = LayoutInflater.from(context);
    }


    /*******
     * 方法名：onCreateViewHolder
     * 功能：初始化item布局
     * @param parent item父容器
     * @param  viewType 标志位
     *
     * *******/
    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        //加载item布局文件
        View view = inflater.inflate(R.layout.recycleview_list_item_layout,parent,false);
        MyViewHolder myViewHolder = new MyViewHolder(view);
        return myViewHolder;
    }



    /*******
     * 方法名：onBindViewHolder
     * 功能：绑定布局的子控件
     * @param holder viewholder对象，封装了布局控件参数
     * @param  position  当前item的位置
     * **********/
    @Override
    public void onBindViewHolder(@NonNull MyViewHolder  holder, @SuppressLint("RecyclerView") int position) {
        //Log.d("测试",""+mData.get(position).getImageUrl());
        mPosition = position;
        //使用gilde加载网络图片到item的imageview
        Glide.with(mContext).load(mData.get(position).getImageUrl())
                .diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
                .into(holder.imageView);
        //设置图标底部文字
        holder.textView.setText(mData.get(position).getText());
    }

    @Override
    public int getItemCount() {
        return mData.size();
    }


    /*****
     * 方法名： MyViewHolder
     * 功能： 自定义的一个RecyclerView.ViewHolder 子类 用来封装item子控件
     * *****/
    protected class  MyViewHolder extends  RecyclerView.ViewHolder {
        ImageView imageView;
        TextView textView ;

        /*****
         * 方法名：MyViewHolder
         * 功能：构造方法
         * @param  itemView 当前item的布局view
         * ******/
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            //获取子控件
            imageView = itemView.findViewById(R.id.recycleview_list_item_image_iv);
            textView =  itemView.findViewById(R.id.recycleview_list_item_text_tv);

           itemView.setOnClickListener(new View.OnClickListener() {
               @Override
               public void onClick(View v) {

               }
           });
        }

    }
}
